/**
 * js和dart相同的
 * substring、startsWith、endsWith、indexOf、lastIndexOf、replaceAll、split、trim、toUpperCase、toLowerCase
 * 
 * js和dart相近的
 * padStart -> padLeft
 * padEnd -> padRight
 * localeCompare -> compareTo
 * includes -> contains
 * replace -> replaceFirst
 */

/**
 * ts字符串是string(小写)
 */
String name = 'world';

/**
 * 如果var声明时就赋值，类型会自动推断，否则会变为dynamic类型
 * $只有一个变量的情况下可以不用花括号
 */
var str = 'hello $name';

void main() {
  /**
   * 两个字符串字面量拼接可以不用+号
   * 
   */
  print('问候语：' '$str');

  /**
   * end不能传负值，和js的substring用法一样
   * js还有substr、slice（slice可以传负值）
   */
  String hello = str.substring(0, str.length - 6);
  print(hello);

  /** 
   * 比较字典顺序, 和js的localeCompare用法一样
   * js可以直接使用比较运算符进行比较
   */
  print('a>b: ' 'a'.compareTo('b'));

  /**
   * 和js的includes用法一样
   */
  str.contains('wor');
  
  /**
   * 和js的replace用法一样
   */
  print(str.replaceFirst(' ', '-'));

  str.startsWith('he');
  str.endsWith('world');
  str.indexOf('llo');
  str.lastIndexOf('o');
}

